<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    //总共有七种
    //基本数据类型--string/number/boolean/null/undefined/symbol
    //引用数据类型--Object
    /*
      基本数据类型存储在栈中，引用数据类型存储在 
      引用数据类型访问的是引用地址，根据引用地址去找到堆中的实体
    */
    //     - 原始类型有6种，分别是undefined,null,bool,string,number,symbol(ES6新增)。
    // - 虽然 typeof null 返回的值是 object,但是null不是对象，而是基本数据类型的一种。
    // - 原始数据类型存储在栈内存，存储的是值。
    // - 复杂数据类型存储在堆内存，存储的是地址。当我们把对象赋值给另外一个变量的时候，复制的是地址，指向同一块内存空间，当其中一个对象改变时，另一个对象也会变化。
    var a = [1, 2, 3, 4, 5]
    var b = a//b拿的是引用地址 [1, 2, 3, 4, 5]
    var c = a[0]   //1
    console.log(b); //[1, 2, 3, 4, 5]
    console.log(c); //1
    //改变数值
    b[4] = 6 //[1, 2, 3, 4, 6]
    c = 7
    console.log(a[4]);//6
    console.log(a[0]);//1
  </script>
</body>

</html>